using System;

namespace PHSRAG.Insight21.FormsManagement
{
	/// <summary>
	/// Summary description for Constants.
	/// </summary>
	public class Constants
	{
		#region QuestionnaireAnswer Default Names
		/// <summary>
		/// Default names for questionnaires that allow multiples
		/// </summary>
		public class QuestionnaireAnswerDefaultNames
		{
			public const string Drugs = "Add Agent";
			public const string MedicalDevices = "Add Medical Device";
			public const string Sponsor_IR = "Sponsor/Funding";
			public const string Sponsor_AM = "Add Sponsor/Funding";
			public const string Children = "Add Child Population";
		}
		#endregion

		#region Animals QuestionnaireAnswer Default Names
		/// <summary>
		/// Default names for questionnaires that allow multiples
		/// </summary>
		public class AnimalsQuestionnaireAnswerDefaultNames
		{
			public const string Hazardous = "Add Hazardous Agent";
			public const string Procedures = "Add Procedure";
			public const string Tumor = "Add Tumor Production";
			public const string Anesthesia = "Add Anesthesia Regimen";
		}
		#endregion

		#region
		/// <summary>
		/// Animals has multiple questionnaires in the common forms category that allow
		/// multiples.  We need to key off of name in this instance, so constant the names.
        /// Also, the OccHealth and Experience forms need to be fetched by name, so constant
        /// those also.
		/// </summary>
		public class AnimalsQuestionnaireCommonFormNames
		{
			public const string Procedures = "Procedures";
			public const string Tumor = "Tumor Production";
            
            public const string OccHealth = "Occupational Health Survey";
            public const string Experience = "Qualifications and Experience";
        }
		#endregion

		#region Questionnaire Types
		public class QuestionnaireType
		{
			// the domain of QuestionnaireTypes.

			public const string Domain = "QUESTIONNNAIRETYPE";

			public const string Forms = "QUESTTYPE_CF";
			public const string AdverseEvent = "QUESTTYPE_AE";
			public const string Amendment = "QUESTTYPE_AM";
			public const string ContinuingReview = "QUESTTYPE_CR";
			public const string InitialApplication = "QUESTTYPE_IR";
			public const string OtherEvent = "QUESTTYPE_OE";
			public const string EmergencyUser = "QUESTTYPE_EU";
			public const string COI = "QUESTTYPE_COI";
			public const string Animals = "QUESTTYPE_ANM";

			public const string CategoryAttribute = "CATEGORY";

		}
		#endregion

		public class AnimalsFormCatgory
		{
			// domain of the questionnaire category for Animals
			public const string Domain = "QUESTCAT_ANM";

			// order attribute
			public const string OrderAttribute = "Order";

			// multiple attribute
			public const string MultipleAttribute = "Multiple";

			public const string Amendment = "QUESTCAT_ANM_AM";
			public const string AnnualReview = "QUESTCAT_ANM_AR";
			public const string CommonForms = "QUESTCAT_ANM_CF";
			public const string Deficiency = "QUESTCAT_ANM_DEF";
			public const string Hazardous = "QUESTCAT_ANM_HZ";
			public const string InitialApplication = "QUESTCAT_ANM_IA";
			public const string Procedures = "QUESTCAT_ANM_PRO";
			public const string SponsorFunding = "QUESTCAT_ANM_SF";
			public const string TriennialReview = "QUESTCAT_ANM_TRI";
			public const string InitialStandardApplication = "QUESTCAT_ANM_STD";
			public const string InitialTissueApplication = "QUESTCAT_ANM_TIS";
			public const string TumorProduction = "QUESTCAT_ANM_TP";
			public const string Anesthesia = "QUESTCAT_ANM_AN";
		}

		#region Common Form Categories
		public class CommonFormCategory
		{
			//domain of the questionnaire category for common form
			public const string Domain = "QUESTCAT_CF";

			// order attribute
			public const string OrderAttribute = "Order";

			//multiple attribute
			public const string MultipleAttribute = "Multiple";

			public const string InterventionInteraction = "QUESTCAT_CF_INTER";
			public const string SpecialPop = "QUESTCAT_CF_SPECIALPOP";
			public const string Nursing = "QUESTCAT_CF_NURSING";
			public const string Drugs = "QUESTCAT_CF_DRUGS";
			public const string Devices = "QUESTCAT_CF_DEVICES";
			public const string Radiation = "QUESTCAT_CF_RADIATION";
			public const string GCRC = "QUESTCAT_CF_GCRC";
			public const string InitialApplication = "QUESTCAT_CF_INITIAL";
			public const string SponsorFunding = "QUESTCAT_CF_SPONS";
			public const string HealthMedicalInfo = "QUESTCAT_CF_HMI";
			public const string ExcessHumanMaterial = "QUESTCAT_CF_EHM";
			public const string TissueSampleRepository = "QUESTCAT_CF_TSP";
			public const string ResearchDataRepository = "QUESTCAT_CF_RDP";
		}
		#endregion

		#region Amendment Categories
		public class AmmendmentCategory
		{
			//domain of the questionnaire category for Amendment
			public const string Domain = "QUESTCAT_AM";

			// order attribute
			public const string OrderAttribute = "Order";

			public const string InitialQuestionnaire = "QUESTCAT_AM_IQ";
		}
		#endregion

		#region Initial Application Categories
		public class InitialApplicationCategory
		{
			//domain of the questionnaire category for Initial Application
			public const string Domain = "QUESTCAT_IR";

			public const string InitialQuestionnaire = "QUESTCAT_IR_IQ";
		}
		#endregion

		#region Adverse Event Categories
		public class AdverseEventCategory
		{
			//domain of the questionnaire category for Adverse Event
			public const string Domain = "QUESTCAT_AE";

			public const string InitialQuestionnaire = "QUESTCAT_AE_IQ";
		}
		#endregion

		#region Continuing Review Categories
		public class ContinuingReviewCategory
		{
			//domain of the questionnaire category for Continuing Review
			public const string Domain = "QUESTCAT_CR";

			public const string InitialQuestionnaire = "QUESTCAT_CR_IQ";
		}
		#endregion

		#region Other Event Categories
		public class OtherEventCategory
		{
			//domain of the questionnaire category for Other Event
			public const string Domain = "QUESTCAT_OE";

			public const string InitialQuestionnaire = "QUESTCAT_OE_IQ";
		}
		#endregion

		#region Emergency Use Categories
		public class EmergencyUseCategory
		{
			//domain of the questionnaire category for Other Event
			public const string Domain = "QUESTCAT_EU";

			public const string InitialQuestionnaire = "QUESTCAT_EU_IQ";
		}
		#endregion

		#region COI Categories
		public class COICategory
		{
			//domain of the questionnaire category for COI forms
			public const string Domain = "QUESTCAT_COI";
			// order attribute
			public const string OrderAttribute = "Order";
			public const string CategoryHeading = "CategoryHeading";
			public const string CategoryHeadingForIndividualAttribute = "CategoryHeadingForIndividual";
			public const string CategoryHeadingForTrusteeAttribute = "CategoryHeadingForTrustee";

			public const string InitialQuestionnaire = "QUESTCAT_COI_IQ";
			public const string OutsideActivity = "QUESTCAT_COI_OA";
			public const string EquityInterest = "QUESTCAT_COI_EI";
			public const string FamilyAssociation = "QUESTCAT_COI_FA";
			public const string Royalty = "QUESTCAT_COI_R";
		}
		#endregion

		#region Script Types
		public class ScriptType
		{
			// the domain name for Script Types
			public const string Domain = "SCRIPTTYPE";

			public const string Validation = "SCRIPTTYPE_VALIDATION";
			public const string Requirement = "SCRIPTTYPE_REQUIREMENT";
			public const string Workflow = "SCRIPTTYPE_WORKFLOW";
			public const string Submission = "SCRIPTTYPE_SUBMISSION";
			public const string AnswerFiller = "SCRIPTTYPE_ANSWERFILLER";
		}
		#endregion

		#region Script Types
		public class AnimalsSubmissionScriptType
		{
			// the domain name for Script Types
			public const string Amendment = "SCRIPTTYPE_ANIMAL_SUB_AME";
			public const string AnnualReview = "SCRIPTTYPE_ANIMAL_SUB_AR";
			public const string Initial = "SCRIPTTYPE_ANIMAL_SUB_IR";
			public const string TriennialReview = "SCRIPTTYPE_ANIMAL_SUB_TR";
			public const string Deficiency = "SCRIPTTYPE_ANIMAL_SUB_DEF";
		}
		#endregion

		#region  Attachment Types
		public class AttachmentType
		{
			//domain name for Attachment Types
			public const string Domain = "ATTACHMENTTYPE";

			// Ref Codes (some are used in requirements scripts)
			public const string ProtocolSummary = "ATCHTYPE_PROTOCOLSUMMARY";
			public const string Schema = "ATCHTYPE_SCHEMA";
			public const string DetailedProtocol = "ATCHTYPE_DETPROT";
			public const string ConsentForm = "ATCHTYPE_CNSNTFRM";
			public const string AssentForm = "ATCHTYPE_ASSNTFRM";
			public const string NIHGrant = "ATCHTYPE_NIHGRANT";
			public const string OtherGrant = "ATCHTYPE_OTHGRANT";
			public const string Advertisement = "ATCHTYPE_ADVRTSMNT";
			public const string Poster = "ATCHTYPE_POSTER";
			public const string Flyer = "ATCHTYPE_FLYER";
			public const string RecruitmentLetter = "ATCHTYPE_RCRTMNTLTR";
			public const string TelephoneScript = "ATCHTYPE_TLPHNSCRPT";
			public const string InstrumentOrQuestionnaire = "ATCHTYPE_INSTRMNTQUSTNR";
			public const string Diaries = "ATCHTYPE_DIARIES";
			public const string DrugBrochure = "ATCHTYPE_DRGBRCHR";
			public const string PackageInsert = "ATCHTYPE_PCKGINSRT";
			public const string INDInformation = "ATCHTYPE_INDINFO";
			public const string DeviceBrochure = "ATCHTYPE_DEVBRCHR";
			public const string NSRInformation = "ATCHTYPE_NSRINFO";
			public const string IDEInformation = "ATCHTYPE_IDEINFO";
			public const string DataCollectionForm = "ATCHTYPE_DTCOLLFRM";
			public const string StaffCertification = "ATCHTYPE_STFCERTFRM";
			public const string SponsorAmendment = "ATCHTYPE_SPNSRAMNDMNT";
			public const string ResponseToReview = "ATCHTYPE_RSPNSETORVW";
			public const string EnrollmentReport = "ATCHTYPE_ENRLREPORT";
			public const string LaserTraining = "ATCHTYPE_LSRTRNING";
			public const string Other = "ATCHTYPE_OTHER";
			public const string Flowchart = "ATCHTYPE_FLOWCHART";
            public const string StatementOfWork = "ATCHTYPE_STATEMENTOFW";
            public const string ManualOfOperations = "ATCHTYPE_MANUALOFOPER";

			//Determines the display order of the code
			public const string AnimalsOrderAttribute = "AnimalsOrder";
            public const string HumansOrderAttribute = "HumansOrder";

			// Determines whether or not an attachment, based on the type,
			// is included in the application when viewing
			public const string ApplicationIncludeAttribute = "APP_INCLUDE";

			// Determines if the code is available for Human Applications: Y or N
			public const string HumansAttribute = "HUMANS";

			// Determines if the code is available for Animal Applications: Y or N
			public const string AnimalsAttribute = "ANIMALS";
		}
		#endregion

		#region Validation Categories
		public class ValidationCategory
		{
			//domain name for Validation Categories
			public const string Domain = "VALIDATIONCATEGORY";
		}
		#endregion

		#region Staff Types
		public class StaffType
		{
			//domain name for Staff Types
			public const string Domain = "STAFFTYPE";
		}
		#endregion

		#region Protocol Status
		public class ProtocolStatus
		{
			//domain name for Protocol Status
			public const string Domain = "PROTOCOLSTATUS";

			public const string WorkInProgress = "PPSTATUS_WIP";
			public const string Pending = "PPSTATUS_PEND";

		}
		#endregion

		#region QuestionnaireAnswer Status
		public class QuestionnaireAnswerStatus
		{
			public const string Domain = "QASTATUS";
			public const string Start = "QASTATUS_START";
			public const string InProgress = "QASTATUS_INPROGRESS";
			public const string Completed = "QASTATUS_COMPLETED";
		}
		#endregion

	}
}
